﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace StuertzDatenbank
{
    public partial class Benutzerbearbeitengui : Form
    {
        private List<Rolle> rollenliste;
        private Sprachfile sprachfile;
        private Benutzer benutzer;
        private Benutzer Alterbenutzer;
        private DBF dbf;
        public Benutzerbearbeitengui(Benutzer benutzer, Benutzer alterbenutzer)
        {
            rollenliste = new List<Rolle>();

            this.benutzer = benutzer;
            this.Alterbenutzer = alterbenutzer;
            dbf = new DBF();
            sprachfile = new Sprachfile();
            InitializeComponent();
            loadrolle();
            this.BenutzernameBox.Text = Alterbenutzer.getbenutzername();
            this.MitarbeiternummerBox.Text = Alterbenutzer.getMitarbeiternummer().ToString();

            this.RollenBox.SelectedItem = alterbenutzer.getRolle().getRollenbezeichnung();
            rechteverwaltung();
            InitializeComponentChange();
            this.Refresh();
        }

        private void InitializeComponentChange()
        {
            this.Start.Text = sprachfile.Start;
            this.MitarbeiterNr.Text = sprachfile.Mitarbeiternummer;
            this.Benutzername.Text = sprachfile.Benutzername;
            this.Rolle.Text = sprachfile.Rolle;
            this.Speichern.Text = sprachfile.Speichern;
            this.button3.Text = sprachfile.Loeschen;
            this.Text = sprachfile.Benutzerbearbeiten;


        }

        private void rechteverwaltung()
        {

            this.button3.Visible = benutzer.getRolle().getRechte().Benutzerloeschen;
            this.Speichern.Visible = benutzer.getRolle().getRechte().Benutzerbearbeiten;
        }

        private void loadrolle()
        {
            rollenliste = dbf.alleRollenAusgeben();

            for (int i = 0; i < rollenliste.Count; i++)
            {
                this.RollenBox.Items.Add(rollenliste[i].getRollenbezeichnung());
            }
            this.Refresh();
        }

        private void Speichern_Click(object sender, EventArgs e)
        {
            Benutzer neuerbenutzer = new Benutzer(-1);
            neuerbenutzer.setBenutzername(this.BenutzernameBox.Text);
            neuerbenutzer.setMitarbeiternummer(int.Parse(this.MitarbeiternummerBox.Text));
            neuerbenutzer.setRolle(rollenliste[this.RollenBox.SelectedIndex]);
            dbf.changeBenutzer(this.Alterbenutzer, neuerbenutzer);
            this.Refresh();
            this.Visible = false;
            BenutzerverwaltungGui gui = new BenutzerverwaltungGui(benutzer);
            this.Dispose();
            gui.ShowDialog();
        }

        private void Start_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            startgui gui = new startgui(benutzer);
            this.Dispose();
            gui.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            BenutzerverwaltungGui gui = new BenutzerverwaltungGui(benutzer);
            this.Dispose();
            gui.ShowDialog();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.dbf.benutzerLoeschen(Alterbenutzer);
            Alterbenutzer = new Benutzer(-1);

            this.BenutzernameBox.Text = "";
            this.MitarbeiternummerBox.Text = "";
            this.Refresh();
            this.Visible = false;
            BenutzerverwaltungGui gui = new BenutzerverwaltungGui(benutzer);
            this.Dispose();
            gui.ShowDialog();
        }
    }
}
